Las APIs de los navegadores permiten a los desarrolladores hacer cosas como:
Aquí tienes una lista de algunas de las APIs más comunes del navegador, junto con ejemplos sencillos para cada una:
Permite manipular la estructura HTML de una página.
Ejemplo:
document.getElementById("miElemento").innerText = "Hola, Mundo!";
Proporciona una forma sencilla de realizar solicitudes HTTP.
Ejemplo:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Permite almacenar datos en el navegador de manera persistente.
Ejemplo:
localStorage.setItem('nombre', 'Juan');
console.log(localStorage.getItem('nombre')); // Juan
Similar a Local Storage, pero los datos se eliminan cuando se cierra la pestaña.
Ejemplo:
sessionStorage.setItem('sesion', 'activa');
console.log(sessionStorage.getItem('sesion')); // activa
Permite almacenar datos en el navegador en forma de cookies.
Ejemplo:
document.cookie = "usuario=Juan; expires=Fri, 31 Dec 2024 23:59:59 GMT";
Permite acceder a la ubicación geográfica del usuario.
Ejemplo:
navigator.geolocation.getCurrentPosition(position => {
console.log(`Latitud: ${position.coords.latitude}, Longitud: ${position.coords.longitude}`);
});
Incluye Local Storage y Session Storage para almacenar datos.
Ejemplo:
// Almacenar un objeto
const user = { name: 'Juan', age: 30 };
localStorage.setItem('user', JSON.stringify(user));
// Recuperar el objeto
const retrievedUser = JSON.parse(localStorage.getItem('user'));
console.log(retrievedUser.name); // Juan
Permite dibujar gráficos en un área definida.
Ejemplo:
<canvas id="miCanvas" width="200" height="200"></canvas>
<script>
const canvas = document.getElementById('miCanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 100, 100);
</script>
Permite la comunicación bidireccional en tiempo real entre el cliente y el servidor.
Ejemplo:
const socket = new WebSocket('wss://example.com/socket');
socket.onmessage = event => {
console.log('Mensaje del servidor:', event.data);
};
Permite ejecutar scripts en segundo plano sin bloquear el hilo principal.
Ejemplo:
const worker = new Worker('worker.js'); // archivo worker.js
worker.postMessage('Hola, worker!');
worker.onmessage = function(e) {
console.log('Mensaje del worker:', e.data);
};
Permite acceder a dispositivos multimedia como cámaras y micrófonos.
Ejemplo:
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
const video = document.querySelector('video');
video.srcObject = stream;
})
.catch(error => console.error('Error al acceder a la cámara:', error));
Permite mostrar notificaciones en el escritorio.
Ejemplo:
if (Notification.permission === 'granted') {
new Notification('Hola', { body: 'Este es un mensaje de notificación.' });
} else if (Notification.permission !== 'denied') {
Notification.requestPermission().then(permission => {
if (permission === 'granted') {
new Notification('Hola', { body: 'Este es un mensaje de notificación.' });
}
});
}
Permite la creación de aplicaciones web offline y mejorar la experiencia del usuario.
Ejemplo:
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => console.log('Service Worker registrado con éxito:', registration))
.catch(error => console.log('Error al registrar el Service Worker:', error));
});
}
Permite manipular el historial del navegador.
Ejemplo:
history.pushState({ page: 1 }, 'Título de la página', 'pagina1.html');
Permite interactuar con el portapapeles del usuario.
Ejemplo:
navigator.clipboard.writeText('Texto copiado!')
.then(() => console.log('Texto copiado al portapapeles'))
.catch(err => console.error('Error al copiar al portapapeles:', err));